package com.jblv.frame.web.controller;

import com.jblv.frame.common.dto.PageResult;
import com.jblv.frame.common.message.Result;
import com.jblv.frame.user.api.vo.SysDeptListVO;
import com.jblv.frame.user.api.dto.SysDeptDTO;
import com.jblv.frame.user.api.entity.SysDept;
import com.jblv.frame.user.api.params.SysDeptListParams;
import com.jblv.frame.user.api.params.SysDeptParams;

import java.util.List;

/**
 * @author happyonion.yangtao
 * @version 1.0
 * @title ISysDeptController
 * @projectName jblv-frame
 * @packageName com.jblv.web.controller
 * @description ISysDeptController 部门Controller接口类
 * @date Create at 2020/5/26 22:21
 * @since jdk1.8
 */
public interface ISysDeptController {

    /**
     * 根据id获取部门ID
     * @param id
     * @return SysDept
     */
    Result<SysDept> get(String id);

    /**
     * 获取部门列表
     * @param params
     * @return PageResult
     */
    Result<PageResult<SysDeptDTO>> getList(SysDeptListParams params);

    /**
     * 创建部门
     * @param sysDeptParams
     * @return Boolean
     */
    Result<String> save(SysDeptParams sysDeptParams);

    /**
     * 删除部门根据ID
     * @param id
     * @return Boolean
     */
    Result<Boolean> del(String id);

    /**
     * 更新部门
     * @param sysDeptParams
     * @return Boolean
     */
    Result<Boolean> update(SysDeptParams sysDeptParams);


    Result<List<SysDeptListVO>> getTree();
}
